Controlling movement of a camera to autonomously track a mobile object

ABSTRACT

A method is provided that includes receiving from a camera, video depicting a scene having a center bounded by first and second horizontal edges. The scene also includes an identified object of interest (OI) having a region around the identified OI and a motion vector representing a location, and an amount and at least a horizontal direction of movement. The method also includes calculating from the location of the identified OI, a distance of the identified OI from either or both of the horizontal edges of the scene, and in which the first horizontal edge is in the horizontal direction of movement and the second horizontal edge is opposite the horizontal direction of movement. And the method includes causing an increase or decrease in speed of the camera in the horizontal direction of movement based on location of the identified OI relative to the first/second horizontal edges.

TECHNOLOGICAL FIELD

The present disclosure relates generally to monitoring and surveillanceand, in particular, to autonomously tracking mobile objects.

BACKGROUND

There is a growing desire to be able to monitor, in real time,predefined geographic areas for security purposes. Such areas mayinclude battlefield areas where military operations are underway oranticipated, border areas separating two countries, or stretches ofhighways or roads. Areas where large numbers of individuals might beexpected often are also in need of security monitoring. Such areas mayinvolve, without limitation, stadiums, public parks, touristattractions, theme parks or areas where large groups of individualsmight be expected to congregate, such as at a public rally. In manyapplications involving security monitoring, it is important to be ableto quickly detect objects-of-interest (OIs) such as unauthorizedpersons, vehicles or even suspicious appearing objects within the areabeing monitored. However, present day monitoring and surveillancesystems suffer from numerous limitations that can negatively impacttheir effectiveness in providing real-time monitoring of largegeographic areas or areas densely populated with potential OIs.

Present day monitoring and surveillance systems often employ cameras toimage a predetermined geographic area. A camera may provide a limitedbut movable field of view to enable surveillance of a larger area. Butto track moving objects within the geographic area often requires ahuman operator to control the camera's field of view to track a mobileOI. The operator must therefore multitask between continuously movingthe cameras to track the OI, and relaying information to officers in thefield who may be trying to locate or even confront the OI.

Therefore, it may be desirable to have a system and method that takesinto account at least some of the issues discussed above, as well aspossibly other issues.

BRIEF SUMMARY

Example implementations of the present disclosure are generally directedto an improved apparatus, method and computer-readable storage mediumfor controlling movement of a camera to autonomously track a mobileobject. The system and method of example implementations mayautomatically control movement of a camera's field-of-view to track amobile OI. The system and method may reduce an operator's workload sothat they may more effectively focus on helping the field officers andspend less of their time/attention on camera control.

According to one aspect of example implementations, the method includesreceiving from a camera, video depicting a scene having a center boundedby a first horizontal edge and a second horizontal edge. The scene alsoincludes an identified object of interest (OI) having characteristicinformation including a region around the identified OI and a motionvector representing a location, and an amount and at least a horizontaldirection of movement of the identified OI within the scene.

The method also includes calculating from the location of the identifiedOI, a distance of the identified OI from either or both of thehorizontal edges of the scene, and in which the first horizontal edge isin the horizontal direction of movement and the second horizontal edgeis opposite the horizontal direction of movement. And the methodincludes at least one of causing an increase or decrease in speed of thecamera in the horizontal direction of movement based on location of theidentified OI relative to the first/second horizontal edges. That is, anincrease in speed of the camera may be caused in an instance in whichthe identified OI is located less than a first certain distance from thefirst horizontal edge. Or a decrease in speed of the camera may becaused in an instance in which the identified OI is located less than asecond certain distance from the second horizontal edge.

In one example, the increase in speed of the camera may be up to lowerof a set maximum speed and a certain number of increments in a range ofspeeds between a set minimum speed and the set maximum speed. In thisexample, at least the set maximum speed is less than a maximum capablespeed of the camera.

In one example, the method may further include calculating a speed ofthe OI in the horizontal direction of movement. In this example, themethod may include maintaining the speed of the camera if the speed ofthe OI is greater than a certain speed; or otherwise, causing a decreasein the speed of the camera to zero.

In one example, the method may further include calculating a speed ofthe OI in the horizontal direction of movement. In this example, themethod may include calculating a difference in speed between theidentified OI and camera. The difference in speed may indicate theidentified OI moving away from or toward the center of the scene.

In at least one instance in which the identified OI is moving away fromthe center of the scene and the difference in speed is greater than acertain speed, the method may include causing an increase or decrease inspeed of the camera based on location of the identified OI relative tothe center of the scene. That is, an increase in speed of the camera maybe caused if the identified OI is between the center of the scene andthe first horizontal edge; or otherwise, a decrease in speed of thecamera may be caused if the identified OI is between the center of thescene and the second horizontal edge.

In at least one instance in which the identified OI is moving toward thecenter of the scene and the difference in speed is greater than acertain speed, the method may include maintaining the speed of thecamera, or otherwise causing a decrease in the speed of the camera ifthe identified OI is within a certain distance of the center of thescene.

In one example, the direction of movement may also include a verticaldirection of movement. In this example, the method may further includecausing movement of the camera in the vertical direction of movement andat a set minimum speed for a certain time in an instance in which theidentified OI is more than a certain distance from the center of thescene in the vertical direction of movement.

In one example, the scene may include a plurality of identified objects.In this example, the method may include selecting one of the identifiedobjects as the OI. In this regard, the selected one of the identifiedobjects may be located closest to the center of the scene, or locatedclosest to a user-selected location within the scene.

In one example, receiving video may include continuously receivingframes of video, and including one or more updates to the OI each ofwhich includes a change in either or both of the region around theidentified OI or the motion vector. In this example, calculating thedistance, and causing the increase in the speed and/or the decrease inthe speed may occur during tracking of the OI, and continue as long asupdates to the OI are received with at least a certain threshold periodor frequency.

In a further example, in an instance in which an update to the OI is notreceived within the certain threshold, the method may further includedetermining if the scene includes an identified object located within acertain distance of a last updated location of the OI in the horizontaldirection of movement. The method may include selecting the respectiveidentified object as the OI if the scene includes the respectiveidentified object; or otherwise if the scene does not include therespective identified object, waiting up to an additional certainthreshold time to receive an update to the OI, in which case tracking ofthe OI continues.

In other aspects of example implementations, an apparatus and acomputer-readable storage medium are provided for controlling movementof a camera to autonomously track a mobile object.

According to another aspect of example implementations, thecomputer-readable storage medium has computer-readable program codestored therein that, in response to execution by a processor, cause anapparatus to at least a number of operations. The apparatus is caused toreceive from a camera, video depicting a scene having a center boundedby a first horizontal edge and a second horizontal edge. The scene alsoincludes an identified object of interest (OI) having characteristicinformation including a region around the identified OI and a motionvector representing a location, and an amount and at least a horizontaldirection of movement of the identified OI within the scene.

The apparatus is also caused to calculate from the location of theidentified OI, a distance of the identified OI from either or both ofthe horizontal edges of the scene, and in which the first horizontaledge is in the horizontal direction of movement and the secondhorizontal edge is opposite the horizontal direction of movement. Andthe apparatus is caused to at least one of cause an increase or decreasein speed of the camera in the horizontal direction of movement based onlocation of the identified OI relative to the first/second horizontaledges. That is, an increase in speed of the camera may be caused in aninstance in which the identified OI is located less than a first certaindistance from the first horizontal edge. Or a decrease in speed of thecamera may be caused in an instance in which the identified OI islocated less than a second certain distance from the second horizontaledge.

In one example, the apparatus being caused to cause the increase in thespeed of the camera may include being caused to cause the increase inthe speed of the camera up to lower of a set maximum speed and a certainnumber of increments in a range of speeds between a set minimum speedand the set maximum speed. In this example, at least the set maximumspeed may be less than a maximum capable speed of the camera.

In various examples, the computer-readable storage medium may havefurther computer-readable program code stored therein that, in responseto execution by the processor, causes the apparatus to perform furtheroperations.

In one example, the apparatus may be further caused to calculate a speedof the OI in the horizontal direction of movement. And the apparatus maybe caused to maintain the speed of the camera if the speed of the OI isgreater than a certain speed; or otherwise, cause a decrease in thespeed of the camera to zero.

In some examples, the apparatus may be further caused to calculate aspeed of the OI in the horizontal direction of movement, and calculate adifference in speed between the identified OI and camera, where thedifference in speed may indicate the identified OI moving away from ortoward the center of the scene. In at least one instance in which theidentified OI is moving away from the center of the scene and thedifference in speed is greater than a certain speed, the apparatus maybe caused to cause an increase in the speed of the camera if theidentified OI is between the center of the scene and the firsthorizontal edge; or otherwise, cause a decrease in the speed of thecamera if the identified OI is between the center of the scene and thesecond horizontal edge. And at least one instance in which theidentified OI is moving toward the center of the scene and thedifference in speed is greater than a certain speed, the apparatus maybe caused to maintain the speed of the camera, or otherwise cause adecrease in the speed of the camera if the identified OI is within acertain distance of the center of the scene.

In one example, the direction of movement may also include a verticaldirection of movement. In this example, the apparatus may be furthercaused to cause movement of the camera in the vertical direction ofmovement and at a set minimum speed for a certain time in an instance inwhich the identified OI is more than a certain distance from the centerof the scene in the vertical direction of movement.

In one example, the scene may include a plurality of identified objects.In this example, the apparatus may be further caused to select one ofthe identified objects as the OI, where the selected one of theidentified objects may be located closest to the center of the scene, orlocated closest to a user-selected location within the scene.

In one example, the apparatus being caused to receive video may includebeing caused to continuously receive frames of video, and include one ormore updates to the OI each of which includes a change in either or bothof the region around the identified OI or the motion vector. In thisexample, the apparatus may be caused to calculate the distance, and atleast one of cause the increase in the speed or the decrease in thespeed occur during tracking of the OI, and continue as long as updatesto the OI are received with at least a certain threshold period orfrequency.

In a further example, the apparatus may be further caused to determineif the scene includes an identified object located within a certaindistance of a last updated location of the OI in the horizontaldirection of movement. In this further example, the apparatus may alsobe further caused to select the respective identified object as the OIif the scene includes the respective identified object; or otherwise ifthe scene does not include the respective identified object, wait up toan additional certain threshold time to receive an update to the OI, inwhich case tracking of the OI continues.

The features, functions and advantages discussed herein may be achievedindependently in various example implementations or may be combined inyet other example implementations further details of which may be seenwith reference to the following description and drawings.

BRIEF DESCRIPTION OF THE DRAWING(S)

Having thus described example implementations of the disclosure ingeneral terms, reference will now be made to the accompanying drawings,which are not necessarily drawn to scale, and wherein:

FIG. 1 is an illustration of an object-tracking system in accordancewith an example implementation;

FIG. 2 is an illustration of an example an object-tracking system, whichin various example implementations may correspond to the object-trackingsystem of FIG. 1;

FIGS. 3 and 4 (including 4 a and 4 b) are flowcharts illustratingvarious operations of methods according to various exampleimplementations; and

FIG. 5 illustrates an apparatus that according to some examples may beconfigured to at least partially implement an analysis and controlsystem.

DETAILED DESCRIPTION

Some implementations of the present disclosure will now be describedmore fully hereinafter with reference to the accompanying drawings, inwhich some, but not all implementations of the disclosure are shown.Indeed, various implementations of the disclosure may be embodied inmany different forms and should not be construed as limited to theimplementations set forth herein; rather, these example implementationsare provided so that this disclosure will be thorough and complete, andwill fully convey the scope of the disclosure to those skilled in theart. Also, something may be shown or described as being to the left ofsomething else may apply equally to it being to the right, and viceversa (and similarly for being above or below). Further, althoughreference may be made herein to a number of measures, thresholds and thelike such as times, distances, speeds, percentages and the like,according to which aspects of example implementations may operate;unless stated otherwise, any or all of the measures/thresholds may beconfigurable. Like reference numerals refer to like elements throughout.

FIG. 1 illustrates an object-tracking system 100 according to variousexample implementations of the present disclosure. As shown, the systemincludes an analysis and control system 102 connected to or otherwise incommunication with one or more platforms 104 (one being shown forexample). The analysis and control system and a platform may beconnected to or otherwise in communication with one another in a numberof different manners, such as directly or indirectly by one or morephysical (wired) and/or wireless communications links, networks or thelike. The analysis and control system may be located at or remote from aplatform such as at a command center, in a vehicle on a person or someother suitable location. In some examples, the analysis and controlsystem may be distributed between the platform at which some of itscomponents may be located, and another, remote location at which othersof its components may be located.

The platform 104 may be of any of a number of different types ofplatforms. Examples of suitable types of platforms include a mobileplatform, a stationary platform, a land-based structure, anaquatic-based structure, a space-based structure, a vehicle, anaircraft, an unmanned aerial vehicle, an unmanned ground vehicle, abuilding, a manufacturing facility, a hospital, an object in a park, orsome other suitable type of platform.

As shown, the platform 104 may include one or more cameras 106 each ofwhich may be configured to produce video for a geographic area. Thecamera may be configured to produce video in any of various levels oflight such as from daylight to low-light or even approaching totaldarkness. In some examples, the camera may be a day camera configured toproduce video in daylight and a night camera configured to produce videoin low-light/darkness, or the camera may be a day/night cameraconfigured to selectively produce video in daylight orlow-light/darkness. More particular examples of suitable cameras includedigital cameras, infrared cameras, thermal cameras and the like.

The camera 106 may produce video for a geographic area within which oneor more objects—including at times an object-of-interest (OI)—may bemoving. As or after the camera produces the video, the camera mayprovide the video to the analysis and control system 102 such as fordisplay in a common operating picture (COP) or other suitable type ofdisplay, which may enable monitoring and surveillance of the geographicarea. The geographic area may be any of a number of suitable areas onland, over water or in the air, although example implementations of thepresent disclosure have particular use in tracking objects moving onland. Examples of suitable geographic areas on land include aneighborhood, a city, a number of city blocks, a town, a park and/orsome other suitable type of area. In some examples in which the area isa neighborhood, the camera may produce video of a street in theneighborhood and/or one or more buildings (e.g., houses) on the portionof the street in the neighborhood. Examples of suitable OIs include avehicle, person, building, aircraft, automobile, truck, tank, train,ship or some other suitable type of OI, although again exampleimplementations may have particular use in tracking objects moving onland.

The camera 106 may provide a limited, and perhaps zoomable field of view(FOV) 108 within which the camera may produce video that depicts a sceneincluding a portion of the geographic area. The camera may controllablymovable by the analysis and control system 102, and its field of viewmay thereby be controllably movable, which may enable the camera toproduce video of a greater portion of the geographic area. In someexamples, the platform 104 may include a pan-tilt unit (PTU) 110 on orto which the camera may be mounted or otherwise affixed, and which mayitself be mounted on or otherwise affixed to a support 112. The PTU maybe controllable by the analysis and control system to positionallyadjust the camera to selected angles around the vertical, azimuth (pan)axis and the horizontal, elevation (tilt) axis, such as referenced tothe earth-fixed coordinate system. In some examples, the PTU may evenpositionally adjust rotation of the camera to selected angles about aroll camera axis. In this manner, the PTU may cause movement of thecamera in at least one of a horizontal direction or a vertical directionof movement.

Video produced and provided by the camera 106 may include a sequence offrames of images produced or displayable at a particular frame rate(e.g., 30 Hz). Each frame (image) may be represented by a plurality ofpixels that may be considered point samples (e.g., intensity values) ofthe frame at respective sample locations or positions. The pixels may bearranged in a rectangular (square or non-square) grid having a width andheight that may be given in numbers of pixels. The scene depicted by thevideo may cover the camera's field of view 108, and the center of thescene may correspond to the center of the field of view.

The frames and thus the video may depict a scene including a portion ofgeographic area, and at times including one or more moving objects. Inaccordance with example implementations, the analysis and control system102 may be configured to receive and perform an analysis of the video toidentify one or more moving objects and select one of the moving objectsas an OI (at times referred to as a “target” or “track”), and based onthe analysis, control movement of the camera and thus its field of view108 to track the OI as it moves. The analysis may include any of anumber of different known video content analysis techniques, such asthat provided by video analytics software distributed by SignalInnovations Group of Durham, N.C. In some examples, the video contentanalysis may include identifying one or more moving objects depicted inthe video, and assigning to each a unique identifier (ID). The videocontent analysis may also include determining characteristic informationfor each identified object, such as a region around the object (referredto herein without loss of generality as a “bounding box”) and a motionvector. In some examples, the bounding box of an identified object mayrepresent its location within the scene, and the motion vector mayrepresent its amount and direction of movement within the scene.

In one example, each moving object may be identified by a uniqueidentifier (ID). An object's bounding box representing may be defined bythe pixel location of one of its vertices (corners), and its size inpixels. In one example, an object's motion vector may be given in pixelcoordinates. The motion vector may reflect an offset of the object'sbounding box between adjacent frames in the video, and again, it mayrepresent the object's amount and direction of movement. In variousexamples, an object's direction of movement may be described asleft-right (left-to-right or simply to the left) or right-left(right-to-left or simply to the right), and/or up-down (up-to-down orsimply down) or down-up (down-to-up or simply up).

The analysis and control system 102 may be configured to control thedirection 25 and speed of movement of the camera 106 to maintain amoving OI within its field of view 108. In some examples, the analysisand control system may perform a constant analysis of video andadjustment of camera direction and speed to facilitate maintaining theOI at or near the center of the camera's field of view, which may affordthe greatest amount of visible pixel space as a buffer for movement ofthe field of view as either the actual or relative speed of the OIchanges. In some examples, the analysis and control system mayincorporate minimum and maximum speeds of the camera to avoid rapidacceleration of the camera's field of view toward fast moving objects orfalse alarms.

The analysis and control system 102 may pan the camera 108 in thex-direction to follow horizontal (right-left, left-right) movement of anOI, and/or tilt the camera in the y-direction to follow vertical(down-up, up-down) movement of an OI. In some examples, the analysis andcontrol system may employ a gradual tilt (elevation change) to avoidoperator annoyance and over-shooting an OI. The analysis and controlsystem may employ OI selection logic and a “coasting period,” which mayfacilitate graceful handling of an OI as it becomes obscured and thenreappears, at which point the analysis and control system may resumetracking the respective object.

FIG. 2 illustrates an object-tracking system 200, which in variousexample implementations may correspond to the object-tracking system 100of FIG. 1. The object-tracking system 200 includes an analysis andcontrol system 202 connected to or otherwise in communication with oneor more platforms 204, which may correspond to the analysis and controlsystem 102 and one or more platforms 104 of FIG. 1. The platform 204 mayinclude one or more cameras 206 each of which may provide a field ofview 208, and which may correspond to the one or more cameras 106 andfield of view 108 of FIG. 1. And the camera 206 may be mounted on orotherwise affixed to a PTU 210 that itself may be mounted on orotherwise affixed to a support 212, and which may correspond to the PTU110 and support 112 of FIG. 1.

As shown in FIG. 2, the analysis and control system 202 may include acentral control unit 214 coupled to (by wire or wirelessly) one or moreremote units 216 for respective ones of one or more platforms 204. Insome examples, the central control unit may be located remote (at aremote location) from the platform(s), or at one of the platforms andremote from others of the platforms. In some examples, the remoteunit(s) may be located at respective ones of the platform(s).

In various examples, the remote unit 216 may include an encoder 218,video content analysis (VCA) module 220 and/or remote terminal unit(RTU) 222. Similar to before, the camera 206 may be configured toproduce video. In one example, the video may be analog video, and theencoder 218 may be configured to encode the video such as into MPEGvideo or another suitable video format. The VCA module 218 may becoupled to the encoder, and configured to perform video content analysisof the video. The VCA module may thereby identify moving objects in thevideo, each of which may have a unique ID and characteristic informationsuch as a bounding box and motion vector. The VCA module may also becoupled to the RTU, and configured to provide the video and the ID andcharacteristic information for each identified object in the video. TheRTU may be coupled to the central control unit 214, and may beconfigured to provide the video, and possibly also the ID andcharacteristic information for each identified object, such as fordisplay by the central control unit in a COP or other suitable type ofdisplay.

The RTU 222 may be coupled to the PTU 210, and configured to select oneof the identified objects as an OI, and control the direction and speedof movement of the PTU and thus the camera 206 to maintain the (moving)OI within its field of view 208. In some examples, the VCA module 218may perform a constant analysis of video, and the RTU may perform aconstant adjustment of camera direction and speed to facilitatemaintaining the OI at or near the center of the camera's field of view.As suggested above, the RTU may pan the camera in the x-direction tofollow horizontal movement of the OI, and/or tilt the camera in they-direction to follow vertical movement of the OI. In some examples, thevideo content analysis may depend on the azimuth (pan), elevation (tilt)and/or zoom of the camera; and in these examples, the PTU and/or cameramay provide this information to the VCA module, directly or via the RTU.

As indicated above, the analysis and control system 102, or in someexamples the VCA module 220 of the analysis and control system 202, maybe configured to receive and perform an analysis of video to identifyone or more objects depicted in the video. The analysis may be performedaccording to any of a number of different known video content analysistechniques. In some examples, the analysis may include for each of oneor more identified objects, assigning a unique ID to the object, anddetermining characteristic information such as a bounding box (location,size) and a motion vector that represent the object's location and itsamount and direction of movement.

FIG. 3 illustrates a flowchart including various operations in a methodof selecting an identified object as an OI, and controlling movement ofthe camera 106 (e.g., camera 206) to track the OI, according to oneexample implementation of the present disclosure. Although aspects suchas location, amount and direction of movement may at times be describedin the context of an identified object, it should be understood thatsome examples may more particularly apply to the bounding box of theidentified object. In various examples, the method of FIG. 3 may beperformed at least partially if not entirely by the analysis and controlsystem 102, or in some examples the RTU 222 of the analysis and controlsystem 202.

As shown in block 302, the method may include receiving a video orrather frames of video depicting a scene of a portion of a geographicarea and including one or more identified objects. Each identifiedobject may have unique ID, bounding box representing its location withinthe scene, and a motion vector representing its amount and direction ofmovement (vertical, horizontal) within the scene—none, some or all ofwhich may be displayable with the video. The method may then includeselecting one of the identified object(s) as a current OI, as shown inblock 304. The identified object may be selected in any of a number ofdifferent manners.

In one example, the selected object may be the identified object locatedclosest to the center of the scene depicted by the video, which asindicated above, may correspond to the center of the camera's field ofview 108 (e.g., field of view 208). In another example, the video may bedisplayed within a window of a graphical user interface (GUI), and userinput may indicate a user-selected location within the scene, such asthrough use of an appropriate pointing device (e.g., mouse, joystick,touchpad, touchscreen). In this example, the selected object may be theidentified object located closest to the user-selected location. In amore particular example, the selected object may be the identifiedobject closest to the user-selected location that has also been updatedwithin a prior certain time (e.g., 2,000 milliseconds). Again, this timeand other measures/thresholds may be configurable. In this regard, anupdate to an identified object may refer to a change in any or all ofits characteristic information (e.g., bounding box and/or motion vector)between frames of video.

The method may include tracking the current OI, as shown in block 306.As the current OI is tracked, method may include continuously receivingframes of video that may include updates to the current OI, as well asperhaps updates to any other identified objects. The method may includecalculating, from the updates to the current OI, an appropriatedirection and speed of movement of the camera 106 (e.g., camera 206) tomaintain the current OI within the scene depicted by the video (e.g.,close to its center), which as indicated above may cover camera's fieldof view 108. The camera may be caused to move according to thecalculated direction and speed, as shown in block 308. And someexamples, this may continue as long as updates to the current OI arereceived with at least a certain threshold (T1) period (e.g., 1,500milliseconds) or frequency (e.g., 0.667 Hz), as shown in block 310 (andagain in blocks 306, 308).

In the instance in which an update to the current OI is not receivedwithin T1, the method may include determining whether the scene depictedby the video includes another suitable identified object to track, asshown in block 312. More particularly, for example, the method mayinclude determining if the scene includes an identified object located(or whose bounding box is located) within a certain (configurable)distance (e.g., 80 pixels) of the last updated location of the currentOI (or its bounding box) in the current OI's direction of movement,which may also be between the last updated location of the current OIand edge (e.g., horizontal) of the scene in the current OI's directionof movement. This other object may also be confined to an object thathas been updated within a prior certain time (e.g., 1,500 milliseconds).In some examples, such an object may (but need not) represent thecurrent OI that has become obscured or otherwise left within the scene,but then reappeared within the respective prior time.

If the scene does include another suitable identified object, the methodmay include selecting the respective identified object as a current OI,as shown in block 314, after which the method may begin tracking the nowcurrent OI similar to before (see blocks 306-312). Otherwise, if thescene does not include another suitable identified object, the methodmay include waiting up to an additional certain threshold (T2) time(e.g., 3,500 milliseconds for a T1+T2=5,000 milliseconds) to receive anupdate to the current OI, in which case tracking of the current OI maycontinue, as shown in block 316 (and again in blocks 306-312), whilecontinuing to receive video. But in the case that an update to thecurrent OI is not received within the additional threshold (T2) time,the method may include selection of another one of the identifiedobject(s) as the current OI to track, such as the object closest to theclosest to the center of the scene or user-selected location, similar tobefore (see block 304). The method may then continue with the nowcurrent OI (see blocks 306-316), while continuing to receive video.

FIG. 4 (including FIGS. 4a and 4b ) illustrates a flowchart includingvarious operations in a method of controlling movement of a camera 106(e.g., camera 206) to autonomously track a mobile OI. The camera mayproduce video depicting a scene including an OI (or a current OI), andthe method may generally relate to causing movement of the cameraaccording an appropriate direction and speed to maintain the (movable)OI within the scene, which may be covered by the camera's field of view108 (field of view 208). This may be one example of the operation shownand described with respect to block 308 of FIG. 3 above. As indicatedabove, although aspects such as location, amount and direction ofmovement may at times be described in the context of an OI, it should beunderstood that some examples may more particularly apply to thebounding box of the OI. Also, similar to FIG. 3, in various examples,the method of FIG. 4 may be performed at least partially if not entirelyby the analysis and control system 102, or in some examples the RTU 222of the analysis and control system 202.

As shown in block 402, the method may include selecting non-zero minimumand maximum speeds of the PTU 110 (e.g., PTU 210) and thus the camera106. In some examples, the minimum speed may be equal to or greater thanthe minimum speed at which the PTU is capable of moving; and similarly,in some examples, the maximum speed may be equal to or less than themaximum speed at which the PTU is capable of moving. In one example, theminimum and maximum speeds may be selected to define a range of speedsover which the camera may produce a perceptible video. The minimum andmaximum speeds may be set as functions of (e.g., scaled to) the camera'sfield of view 108, and may define a range of speeds in percentageincrements (e.g., 10%) of the field of view. In some examples, the fieldof view may be zoomable, and in these examples, the minimum and maximumspeeds may be calculated from their respective functions and the currentfield of view, as shown in block 404.

The method may include receiving a video or rather frames of videodepicting a scene of a portion of a geographic area and including the OIas one of its identified object(s), as shown in block 406 (cf. block302). The OI may have unique ID and characteristic information such as abounding box representing its location within the scene, and a motionvector representing its amount and direction of movement (vertical,horizontal) within the scene—none, some or all of which may bedisplayable with the video. This may occur continuously and include tothe current OI, which may be reflected by a change in any or all of itscharacteristic information between frames of video.

In some examples, the method may include tilting the camera 106 in they-direction to follow or otherwise track vertical (down-up, up-down)movement of the OI, as shown in block 408. In these examples, the methodmay include causing movement of the camera in the vertical direction ofmovement of the OI and at the set minimum speed of the PTU 110 for acertain time (e.g., 400 milliseconds) in instances in which the OI ismore than a certain distance (e.g., 60 pixels) from the center of thescene in the vertical direction of movement, as shown in block 410.

In some examples, the method may include panning the camera 106 in thex-direction to follow or otherwise track horizontal (right-left,left-right) movement of the OI, as shown in block 412. In theseexamples, the method may include determining the OI's direction ofmovement such as from its motion vector, as shown in block 414. In someexamples in which the OI is at least temporarily stationary (notmoving), the direction of movement may be taken from its last update inwhich the OI moved (the OI initially selected as a moving object). Ininstances in which the OI's direction of movement has changed, thecamera may be caused to move in the OI's now current direction ofmovement at the set minimum speed of the PTU 110; otherwise, a priorspeed of the camera in the OI's direction of movement may be maintained.

The method may include calculating the OI's speed in its horizontaldirection of movement, as shown in block 416. In one example, the OI'sspeed may be calculated from its motion vector and the frame rate of thecamera 106, and may be given in pixels/second, it's the current speed ofthe camera may be maintained (e.g., set minimum speed of the PTU 110) ifthe OI is moving at greater than a certain (configurable) speed (e.g.,10 pixels/second); or otherwise, the speed of the camera may be causedto decrease to zero by decreasing the speed of the PTU to zero, as shownin block 418.

The method may include calculating the OI's distance from either or bothhorizontal edges of the scene—a first edge being in the OI's directionof movement, and/or a second edge being opposite the direction ofmovement, as shown in block 420. The OI located too close to the edge ofthe scene in its direction of movement may indicate that the camera 106may not be moving fast enough to keep up its field of view 108 (or thedepicted scene) with the OI. On the other hand, the OI located too closeto the edge of the scene opposite its direction of movement may indicatethat the camera 106 may be moving too fast such that the OI may not bekeeping up with its field of view 108 (or the depicted scene).

In instances in which the OI is located greater than respective certaindistances from the horizontal edges in or opposite the direction ofmovement, the speed of the camera 106 may be caused to increase ordecrease to bring the OI closer to the center of the scene, as shown inblock 422. More particularly, in instances in which the OI is locatedless than a (first) certain distance (e.g., 50 pixels) from thehorizontal edge in the direction of movement, the speed of the camera106 in the OI's direction of movement may be caused to increase to catchup to the OI—or rather catch up the center of the scene to the OI. Insome examples, the speed of the camera may be caused to increase up tothe lower of the set maximum speed of the PTU 110 and a certain numberof increments in the range (e.g., up to three often increments) betweenthe set minimum and maximum speeds, to move the OI further from if notoutside of the certain distance from the edge of the scene in itsdirection of movement.

In instances in which the OI is located less than a (second) certaindistance (e.g., 100 pixels) from the horizontal edge opposite thedirection of movement, the speed of the camera in the OI's direction ofmovement may be caused to decrease to allow the OI to catch up—or ratherallow the OI to catch up to the center of the scene. In some examples,the first certain distance from the horizontal edge in the direction ofmovement may be the same as or different from the second certaindistance from the horizontal edge opposite the direction of movement.And in some examples, the speed of the camera may be caused to decreasedown to the set minimum speed of the PTU 110 or even down to zero, tomove the OI further from if not outside of the certain distance from theedge of the scene opposite its direction of movement.

The method may also include calculating the difference in speed (in thehorizontal direction of movement) between the OI and camera 106, whichmay reflect the rate of change of the OI's horizontal distance from thecenter of the scene, as shown in block 424. In one example, this speedor rate of change may be calculated as a function of the time betweenupdates to the OI, and the difference in distance from the center of thescene between the respective updates.

In some instances, the difference in speed may indicate the OI movingaway from or toward the center of the scene. For example, the OI may bemoving away from the center of the scene when the OI's speed is lessthan that of the camera 106, and the OI is between the center of thescene and its horizontal edge opposite the direction of movement.Likewise, for example, the OI may be moving away from the center of thescene when the OI's speed is greater than that of the camera, and the OIis between the center of the scene and its horizontal edge in thedirection of movement. On the other hand, for example, the OI may bemoving toward the center of the scene when the OI's speed is greaterthan that of the camera, and the OI is between the center of the sceneand its horizontal edge opposite the direction of movement. And the OImay be moving away from the center of the scene when the OI's speed isless than that of the camera, and the OI is between the center of thescene and its horizontal edge in the direction of movement.

In instances in which the OI is noticeably moving away from the centerof the scene, or in some examples in these instances and in which thedifference in speed is greater than a (first) certain speed (e.g., 50pixels/second), the speed of the camera 106 may be caused to increase ordecrease based on the location of the OI relative to the center of thescene to continue bringing the OI closer to it, as shown in block 426.That is, the speed of the camera may be caused to increase if the OI ispast the center of the scene in its direction of movement (i.e., the OIis between the center of the scene and horizontal edge in the directionof movement), which may allow the center of the scene to catch up to theOI. Otherwise, the speed of the camera may be caused to decrease if theOI is short of the center of the scene (i.e., the OI is between thecenter of the scene and horizontal edge opposite the direction oftravel), which may allow the OI to catch up to the center of the scene.

In instances in which the OI is noticeably moving toward from the centerof the scene, or in some examples in these instances and in which thedifference in speed is greater than a (second) certain speed (e.g., 30pixels/second), the speed of the camera 106 may be maintained or causedto decrease based on the location of the OI relative to the center ofthe scene to continue bringing the OI closer to it, as shown in block428. That is, the speed of the camera may be maintained (or ceased anyprior increase in speed), or the speed may be caused to decrease down tothe set minimum speed if the OI is within a certain distance (e.g., 100pixels) of the center of the scene. In some examples, the first certainspeed moving away from the center of the scene may be the same as ordifferent from the second certain speed moving toward the center of thescene.

In instances in which the OI is located greater than the respectivecertain distances from the horizontal edges, and the differences inspeed between the OI and center of the scene are less than therespective certain speeds, the OI may be considered in synch with thescene. In these instances, the speed of the camera 106 may be maintainedin the OI's direction of movement, as shown in block 430. Or in someexamples in which an update to the OI is not received within a certaintime (e.g., T1), the camera may be caused to stop by decreasing thespeed of the PTU 110 to zero, as shown in block 432. In either instance,the method may include a delay of a certain time (e.g., 400milliseconds), after which the method may repeat (see blocks 408-432),while continuing to receive video.

According to example implementations of the present disclosure, theanalysis and control system 102. Similarly, the example of the analysisand control system 202, including its components such as the centralcontrol unit 214, and the remote unit 216 including its encoder 218, VCAmodule 220 and RTU 222, may be implemented by various means according toexample implementations. Means for implementing analysis control systemand its subsystems, components and the like may include hardware, aloneor under direction of one or more computer program code instructions,program instructions or executable computer-readable program codeinstructions from a computer-readable storage medium.

In one example, one or more apparatuses may be provided that areconfigured to function as or otherwise implement the analysis andcontrol system 102, 202 shown and described herein in various exampleimplementations. In examples involving more than one apparatus, therespective apparatuses may be connected to or otherwise in communicationwith one another in a number of different manners, such as directly orindirectly via a wireline or wireless network or the like.

FIG. 5 illustrates an apparatus 500 that according to some examples maybe configured to at least partially implement the analysis and controlsystem 102, or in some examples the RTU 222 of the analysis and controlsystem 202. Generally, the apparatus of exemplary implementations of thepresent disclosure may comprise, include or be embodied in one or morefixed or portable electronic devices. Examples of suitable electronicdevices include a smartphone, tablet computer, laptop computer, desktopcomputer, workstation computer, server computer or the like. Theapparatus may include one or more of each of a number of components suchas, for example, a processor 502 (e.g., processor unit) connected to amemory 504 (e.g., storage device).

The processor 502 is generally any piece of computer hardware that iscapable of processing information such as, for example, data,computer-readable program code, instructions or the like (at timesgenerally referred to as “computer programs,” e.g., software, firmware,etc.), and/or other suitable electronic information. The processor iscomposed of a collection of electronic circuits some of which may bepackaged as an integrated circuit or multiple interconnected integratedcircuits (an integrated circuit at times more commonly referred to as a“chip”). The processor may be configured to execute computer programs,which may be stored onboard the processor or otherwise stored in thememory 504 (of the same or another apparatus).

The processor 502 may be a number of processors, a multi-processor coreor some other type of processor, depending on the particularimplementation. Further, the processor may be implemented using a numberof heterogeneous processor systems in which a main processor is presentwith one or more secondary processors on a single chip. As anotherillustrative example, the processor may be a symmetric multi-processorsystem containing multiple processors of the same type. In yet anotherexample, the processor may be embodied as or otherwise include one ormore application-specific integrated circuits (ASICs),field-programmable gate arrays (FPGAs) or the like. Thus, although theprocessor may be capable of executing a computer program to perform oneor more functions, the processor of various examples may be capable ofperforming one or more functions without the aid of a computer program.

The memory 504 is generally any piece of computer hardware that iscapable of storing information such as, for example, data, computerprograms (e.g., computer-readable program code 506) and/or othersuitable information either on a temporary basis and/or a permanentbasis. The memory may include volatile and/or non-volatile memory, andmay be fixed or removable. Examples of suitable memory include randomaccess memory (RAM), read-only memory (ROM), a hard drive, a flashmemory, a thumb drive, a removable computer diskette, an optical disk, amagnetic tape or some combination of the above. Optical disks mayinclude compact disk—read only memory (CD-ROM), compact disk—read/write(CD-R/W), DVD or the like. In various instances, the memory may bereferred to as a computer-readable storage medium which, as anon-transitory device capable of storing information, may bedistinguishable from computer-readable transmission media such aselectronic transitory signals capable of carrying information from onelocation to another. Computer-readable medium as described herein maygenerally refer to a computer-readable storage medium orcomputer-readable 15 transmission medium.

In addition to the memory 504, the processor 502 may also be connectedto one or more interfaces for displaying, transmitting and/or receivinginformation. The interfaces may include a communications interface 508(e.g., communications unit) and/or one or more user interfaces. Thecommunications interface may be configured to transmit and/or receiveinformation, such as to and/or from other apparatus(es), network(s) orthe like. The communications interface may be configured to transmitand/or receive information by physical (wireline) and/or wirelesscommunications links. Examples of suitable communication interfacesinclude a network interface controller (NIC), wireless NIC (WNIC) or thelike.

The user interfaces may include a display 510 and/or one or more userinput interfaces 512 (e.g., input/output unit). The display may beconfigured to present or otherwise display information to a user,suitable examples of which include a liquid crystal display (LCD),light-emitting diode display (LED), plasma display panel (PDP) or thelike. The user input interfaces may be wireline or wireless, and may beconfigured to receive information from a user into the apparatus, suchas for processing, storage and/or display. Suitable examples of userinput interfaces include a microphone, image or video capture device,keyboard or keypad, mouse, joystick, touch-sensitive surface (e.g.,touchpad, touchscreen), biometric sensor or the like. The userinterfaces may further include one or more interfaces for communicatingwith peripherals such as printers, scanners or the like.

As indicated above, program code instructions may be stored in memory,and executed by a processor, to implement functions of the systems,subsystems and their respective elements described herein. As will beappreciated, any suitable program code instructions may be loaded onto acomputer or other programmable apparatus from a computer-readablestorage medium to produce a particular machine, such that the particularmachine becomes a means for implementing the functions specified herein.These program code instructions may also be stored in acomputer-readable storage medium that can direct a computer, a processoror other programmable apparatus to function in a particular manner tothereby generate a particular machine or particular article ofmanufacture. The instructions stored in the computer-readable storagemedium may produce an article of manufacture, where the article ofmanufacture becomes a means for implementing functions described herein.The program code instructions may be retrieved from a computer-readablestorage medium and loaded into a computer, processor or otherprogrammable apparatus to configure the computer, processor or otherprogrammable apparatus to execute operations to be performed on or bythe computer, processor or other programmable apparatus.

Retrieval, loading and execution of the program code instructions may beperformed sequentially such that one instruction is retrieved, loadedand executed at a time. In some example implementations, retrieval,loading and/or execution may be performed in parallel such that multipleinstructions are retrieved, loaded, and/or executed together. Executionof the program code instructions may produce a computer-implementedprocess such that the instructions executed by the computer, processoror other programmable apparatus provide operations for implementingfunctions described herein.

Execution of instructions by a processor, or storage of instructions ina computer-readable storage medium, supports combinations of operationsfor performing the specified functions. In this manner, an apparatus 500may include a processor 502 and a computer-readable storage medium ormemory 504 coupled to the processor, where the processor is configuredto execute computer-readable program code 506 stored in the memory. Itwill also be understood that one or more functions, and combinations offunctions, may be implemented by special purpose hardware-based computersystems and/or processors which perform the specified functions, orcombinations of special purpose hardware and program code instructions.

Many modifications and other implementations of the disclosure set forthherein will come to mind to one skilled in the art to which thesedisclosure pertain having the benefit of the teachings presented in theforegoing descriptions and the associated drawings. Therefore, it is tobe understood that the disclosure are not to be limited to the specificimplementations disclosed and that modifications and otherimplementations are intended to be included within the scope of theappended claims. Moreover, although the foregoing descriptions and theassociated drawings describe example implementations in the context ofcertain example combinations of elements and/or functions, it should beappreciated that different combinations of elements and/or functions maybe provided by alternative implementations without departing from thescope of the appended claims. In this regard, for example, differentcombinations of elements and/or functions than those explicitlydescribed above are also contemplated as may be set forth in some of theappended claims. Although specific terms are employed herein, they areused in a generic and descriptive sense only and not for purposes oflimitation.

What is claimed is:
 1. An apparatus comprising: a processor; and acomputer-readable storage medium coupled to the processor and havingcomputer- readable program code stored therein that, in response toexecution by the processor, causes the apparatus to at least: receivefrom a camera, video depicting a scene having a center bounded by afirst horizontal edge and a second horizontal edge, the scene alsoincluding an identified object of interest (OI) having characteristicinformation including a region around the identified OI and a motionvector representing a location, and an amount and direction of movementof the identified OI within the scene, the direction of movementincluding at least a horizontal direction of movement; calculate fromthe location of the identified OI, a distance of the identified OI fromeither or both of the horizontal edges of the scene, and in which thefirst horizontal edge is in the horizontal direction of movement and thesecond horizontal edge is opposite the horizontal direction of movement;and at least one of, cause an increase in a speed of the camera in thehorizontal direction of movement in an instance in which the identifiedOI is located less than a first certain distance from the firsthorizontal edge; or cause a decrease in the speed of the camera in aninstance in which the identified OI is located less than a secondcertain distance from the second horizontal edge.
 2. The apparatus ofclaim 1, wherein the apparatus being caused to cause the increase in thespeed of the camera includes being caused to cause the increase in thespeed of the camera up to lower of a set maximum speed and a certainnumber of increments in a range of speeds between a set minimum speedand the set maximum speed, and in which at least the set maximum speedis less than a maximum capable speed of the camera.
 3. The apparatus ofclaim 1, wherein the computer-readable storage medium has furthercomputer-readable program code stored therein that, in response toexecution by the processor, causes the apparatus to further calculate aspeed of the OI in the horizontal direction of movement; and maintainthe speed of the camera if the speed of the OI is greater than a certainspeed; or otherwise, cause a decrease in the speed of the camera tozero.
 4. The apparatus of claim 1, wherein the computer-readable storagemedium has further computer-readable program code stored therein that,in response to execution by the processor, causes the apparatus tofurther: calculate a speed of the OI in the horizontal direction ofmovement; calculate a difference in speed between the identified CH andcamera, the difference in speed indicating the identified OI moving awayfrom or toward the center of the scene; and in at least one instance inwhich the identified OI is moving away from the center of the scene andthe difference in speed is greater than a certain speed, cause anincrease in the speed of the camera if the identified GI is between thecenter of the scene and the first horizontal edge; or otherwise, cause adecrease in the speed of the camera if the identified OI is between thecenter of the scene and the second horizontal edge.
 5. The apparatus ofclaim 1, wherein the computer-readable storage medium has furthercomputer-readable program code stored therein that, in response toexecution by the processor, causes the apparatus to further: calculate aspeed of the OI in the horizontal direction of movement; calculate adifference in speed between the identified OI and camera, the differencein speed indicating the identified OI moving away from or toward thecenter of the scene; and in at least one instance in which theidentified OI is moving toward the center of the scene and thedifference in speed is greater than a certain speed, maintain the speedof the camera, or otherwise cause a decrease in the speed of the cameraif the identified OI is within a certain distance of the center of thescene.
 6. The apparatus of claim 1, wherein the direction of movementalso includes a vertical direction of movement, and wherein thecomputer-readable storage medium has further computer-readable programcode stored therein that, in response to execution by the processor,causes the apparatus to further: cause movement of the camera in thevertical direction of movement and at a set minimum speed for a certaintime in an instance in which the identified OI is more than a certaindistance from the center of the scene in the vertical direction ofmovement.
 7. The apparatus of claim 1, wherein the scene includes aplurality of identified objects, and wherein the computer-readablestorage medium has further computer-readable program code stored thereinthat, in response to execution by the processor, causes the apparatus tofurther: select one of the identified objects as the OI, the selectedone of the identified objects being located closest to the center of thescene, or located closest to a user-selected location within the scene.8. The apparatus of claim 1, wherein the apparatus being caused toreceive video includes being caused to continuously receive frames ofvideo, and including one or more updates to the OI each of whichincludes a change in either or both of the region around the identifiedOI or the motion vector, and wherein the apparatus is caused tocalculate the distance, and at least one of cause the increase in thespeed or the decrease in the speed occur during tracking of the OI, andcontinue as long as updates to the OI are received with at least acertain threshold period or frequency.
 9. The apparatus of claim 8,wherein the computer-readable storage medium has furthercomputer-readable program code stored therein that, in response toexecution by the processor and in an instance in which an update to theOI is not received within the certain threshold, causes the apparatusto: determine if the scene includes an identified object located withina certain distance of a last updated location of the OI in thehorizontal direction of movement; and select the respective identifiedobject as the OI if the scene includes the respective identified object;or otherwise if the scene does not include the respective identifiedobject, wait up to an additional certain threshold time to receive anupdate to the OI, in which case tracking of the OI continues.
 10. Amethod comprising: receiving from a camera, video depicting a scenehaving a center bounded by a first horizontal edge and a secondhorizontal edge, the scene also including an identified object ofinterest (OI) having characteristic information including a regionaround the identified OI and a motion vector representing a location,and an amount and direction of movement of the identified OI within thescene, the direction of movement including at least a horizontaldirection of movement; calculating from the location of the identifiedOI, a distance of the identified OI from either or both of thehorizontal edges of the scene. and in which the first horizontal edge isin the horizontal direction of movement and the second horizontal edgeis opposite the horizontal direction of movement; and at least one of,causing an increase in a speed of the camera in the horizontal directionof movement in an instance in which the identified OI is located lessthan a first certain distance from the first horizontal edge; or causinga decrease in the speed of the camera in an instance in which theidentified OI is located less than a second certain distance from thesecond horizontal edge.
 11. The method of claim 10, wherein causing theincrease in the speed of the camera includes causing the increase in thespeed of the camera up to lower of a set maximum speed and a certainnumber of increments in a range of speeds between a set minimum speedand the set maximum speed, and in which at least the set maximum speedis less than a maximum capable speed of the camera.
 12. The method ofclaim 10 further comprising: calculating a speed of the OI in thehorizontal direction of movement; and maintaining the speed of thecamera if the speed of the OI is greater than a certain speed; orotherwise, causing a decrease in the speed of the camera to zero. 13.The method of claim 10 further comprising: calculating a speed of the OIin the horizontal direction of movement; calculating a difference inspeed between the identified OI and camera, the difference in speedindicating the identified OI moving away from or toward the center ofthe scene; and in at least one instance in which the identified OI ismoving away from the center of the scene and the difference in speed isgreater than a certain speed, causing an increase in the speed of thecamera if the identified OI is between the center o the scene and thefirst horizontal edge; or otherwise, causing a decrease in the speed ofthe camera if the identified OI is between the center of the scene andthe second horizontal edge.
 14. The method of claim 10 furthercomprising: calculating a speed of the OI in the horizontal direction ofmovement; calculating a difference in speed between the identified CHand camera, the difference in speed indicating the identified OI movingaway from or toward the center of the scene; and in at least oneinstance in which the identified OI is moving toward the center of thescene and the difference in speed is greater than a certain speed,maintaining the speed of the camera, or otherwise causing a decrease inthe speed of the camera if the identified OI is within a certaindistance of the center of the scene.
 15. The method of claim 10, whereinthe direction of movement also includes a vertical direction ofmovement, and wherein the method further comprises: causing movement ofthe camera in the vertical direction of movement and at a set minimumspeed for a certain time in an instance in which the identified OI ismore than a certain distance from the center of the scene in thevertical direction of movement.
 16. The method of claim 10, wherein thescene includes a plurality of identified objects, and wherein the methodfurther comprises: selecting one of the identified objects as the OI,the selected one of the identified objects being located closest to thecenter of the scene, or located closest to a user-selected locationwithin the scene.
 17. The method of claim 10, wherein receiving videoincludes continuously receiving frames of video, and including one ormore updates to the OI each of which includes a change in either or bothof the region around the identified OI or the motion vector, and whereincalculating the distance, and at least one of causing the increase inthe speed or the decrease in the speed occur during tracking of the OI,and continue as long as updates to the OI are received with at least acertain threshold period or frequency.
 18. The method of claim 17,wherein in an instance in which an update to the OI is not receivedwithin the certain threshold, the method further comprises: determiningif the scene includes an identified object located within a certaindistance of a last updated location of the OI in the horizontaldirection of movement; and selecting the respective identified object asthe OI if the scene includes the respective identified object; orotherwise if the scene does not include the respective identifiedobject, waiting up to an additional certain threshold time to receive anupdate to the OI, in which case tracking of the OI continues.
 19. Acomputer-readable storage medium that is non-transitory and hascomputer-readable program code stored therein that, in response toexecution by a processor, cause an apparatus to at least: receive from acamera, video depicting a scene having a center bounded by a firsthorizontal edge and a second horizontal edge, the scene also includingan identified object of interest (OI) having characteristic informationincluding a region around the identified OI and a motion vectorrepresenting a location, and an amount and direction of movement of theidentified OI within the scene, the direction of movement including atleast a horizontal direction of movement; calculate from the location ofthe identified OI, a distance of the identified OI from either or bothof the horizontal edges of the scene, and in which the first horizontaledge is in the horizontal direction of movement and the secondhorizontal edge is opposite the horizontal direction of movement; and atleast one of, cause an increase in a speed of the camera in thehorizontal direction of movement in an instance in which the identifiedOI is located less than a first certain distance from the firsthorizontal edge; or cause a decrease in the speed of the camera in aninstance in which the identified OI is located less than a secondcertain distance from the second horizontal edge.
 20. Thecomputer-readable storage medium of claim 19, wherein the apparatusbeing caused to cause the increase in the speed of the camera includesbeing caused to cause the increase in the speed of the camera up tolower of a set maximum speed and a certain number of increments in arange of speeds between a set minimum speed and the set maximum speed,and in which at least the set maximum speed is less than a maximumcapable speed of the camera.